package com.study.module.ratelimit;

import java.lang.annotation.*;
import java.util.concurrent.TimeUnit;

/**
 * 限流注解
 *
 * @author: 王霄
 * @date: 2021/9/6 19:24
 */
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface RateLimit {

    /**
     * 资源名称
     */
    String name();

    /**
     * 限制请求量
     */
    int count();

    /**
     * 时间间隔
     */
    int period();

    /**
     * 时间单位
     */
    TimeUnit timeUnit() default TimeUnit.SECONDS;

}
